Mobile devices (e.g., cell phones, personal digital assistants, and smart phones) are typically configured with a small screen and limited input mechanisms due to their desired form factor and mobility. Such limitations present an inherent challenge for user interface (UI) design of applications running on these devices. This challenge is often overlooked by application developers whom design their applications for larger, less constrained computing systems, such as desktop and laptop computers, which have ample display area.
For instance, applications running on desktop and laptop computing systems can readily communicate with the user with any one of a number of techniques. Pop-up windows, dialog boxes, and alert boxes can all be used to inform the user of activity or status information regarding the application. Such communication techniques are acceptable, because larger computing systems provide ample screen room. In addition, having multiple windows open at a time is common on such computing systems and widely accepted.
In contrast, mobile devices generally do not allow for multiple windows to be visible at once. Thus, options are limited to provisioning a blocking window that requires the user to dismiss it, or to show a temporary message on the screen that disappears after a few seconds. Neither of these options is ideal. For instance, blocking windows tend to be obtrusive in that they are generally unexpected in the context of a mobile device, and can impede or otherwise frustrate the user's interaction with the device (e.g., receiving a blocking window while trying to make or receive a call prohibits use of the device until the window is cleared). Temporary messages can also be obtrusive (particularly on a small display), and may go unnoticed if the user is not looking at the display at notification time. Another solution is to simply not provide such communications to the mobile device users. However, such communication silence (as well as unseen messages) is contrary to developing and maintaining product recognition in the market place.
Furthermore, typical operating systems for mobile devices, such as Symbian OS, present a unique development problem. For instance, Symbian OS is a core mobile operating system, but it ships without a standard user interface API so that it remains maximally flexible for different looks, feels, and usage patterns. As such, device manufacturers (e.g., Nokia, DoCoMo, Fujitsu) and third parties (e.g., UIQ) are responsible for developing the user interface. These user interfaces tend to differ dramatically from device to device, even if they are built upon the same target OS version. As such, developers are usually required to rewrite significant portions of existing code base to support each new user interface version running a particular operating system.
What is needed, therefore, are mobile device user interface techniques that can run across multiple UI platforms. These techniques should allow for acceptable and unobtrusive communication with the user.